One or more aspects of the invention relate to distributed processing environments, and more particularly, to a distributed processing environment comprising a plurality of processing regions.
It is known to provide a distributed processing environment comprising a plurality of processing regions. Such a distributed processing environment can provide increased availability while the availability of the underlying individual processing regions may change. For example, servers that control a common set of resources can be clustered together and accessed via a single network address, allowing a client to access the resources even when individual servers in the cluster are not available.
If a processing region fails, then any clients that were connected to it can then choose to connect to another processing region of the distributed processing environment to carry out further processing of a transaction for example. However, during a synchronization operation, affinities are created between the components that make up a distributed transaction, and these affinities then have to be maintained or honored following a system or network failure. Affinities thus refer to the processing relationships or requirements that are adhered to (such as a specific order of accessing data or processes for example), and these affinities can restrict the ability to dynamically route work and/or quickly recover from failures.
A client views the distributed processing environment as a single node, and so can only have one connection active at any time, which links the client to one of the processing regions. Thus, when connected to a processing region, a client is unable to re-synchronize outstanding work or transaction with another processing region without dropping the current connection.
Also, a client is unable to discover the availability of a specific processing region unless it tries to connect to it directly. To address this, a client may periodically drop its connection to allow it to attempt to connect back to a specific processing region in the distributed processing environment. However, this approach is not guaranteed to succeed, and the overall performance of a client is adversely affected every time a connection is dropped.